using Identity.Application.Contracts.Common;

namespace Identity.Application.Permissions.Interfaces;

public interface IPermissionsReadService
{
    Task<PermissionDto?> GetByIdAsync(Guid id);
    Task<PermissionDto?> GetByKeyAsync(string PermissionKey);
    Task<IEnumerable<PermissionDto>> GetListAsync(string? keyword = null, CancellationToken cancellationToken = default);
    Task<List<PermissionDto>> GetUnboundPermissionsForApiAsync();
    Task<List<PermissionAndApiServiceNameDto>> GetBoundPermissionsForApiAsync();

}